home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 1 (Walnut Creek)
/
Aminet - June 1993 [Walnut Creek].iso
/
aminet
/
os20
/
util
/
ispell_3_3ljr.lha
/
ispell-3.3LJR
/
README
next >
Wrap
Text File
|
1992-11-20
|
11KB
|
264 lines
This is the README file for the distribution of
ISpell Version 3.3LJR with ARexx Server Mode!
Fri Nov 20 01:16:13 1992
by Loren J. Rittle
IMPORTANT NOTE:
Additions and modifications copyright (C) 1990, 1991, 1992 Loren J. Rittle.
Special thanks to Tom Rokicki of Radical Eye Software for the MinRexx code.
Thanks to Mike Meyer for the mg interface to ISpell.
Thanks to Willy G. J. Langeveld for enhanced TurboText interface to ISpell.
Thanks to Christopher A. Wichura for the TurboText interface to GUISpell.
Thanks to Steve Koren for the GNU EMACS interface to ISpell.
Thanks to all who hacked on ISpell before me. In particular,
Luis Soltero and Tom Rokicki worked on the Amiga port before I
added the ARexx port.
Original version of ISpell copyright (C) 1983 Pace Willisson.
Permission for non-profit use is hereby granted.
All other rights reserved.
Currently, the TurboText interface to ISpell contributed by Willy L.
*may* be broken. My fault, not Willy's. This problem, if it exists,
will be addressed in a soon to be released update. The reason that
this couldn't be avoided/fixed before public release is due to the
fact that I currently have no way to make things privately available
via ftp from within my work site (in the name of security :-( ).
I don't have TurboText and thus couldn't test it myself. I tried to
hack his macros to conform to the new method, but who knows if I
got it right? I have been dragging my feet on this release for
too long and thus decided to get it out the door! :-)
GUISpell is now included with the ISpell distribution. GUISpell and
all other included interfaces (vlt, shell, wshell, ced) were done by myself.
This release of ISpell requires AmigaOS 2.04 or later.
ANOTHER *REAL* IMPORTANT NOTE:
This is the first distribution of ISpell (that I know of, at least)
that has been compiled with SAS/C v6.0 instead of SAS/C v5.x.
Because v5.x and v6.0 use different bit field ordering, all
old hashed dictionaries need to be regenerated from source (dict.2 or
dict.191, etc) via the buildhash command. Hopefully, people with
smaller machines will be able to obtain the new ispell.hash file
from the same place you got this distribution.
FINAL IMPORTANT NOTE:
Currently, the Amiga version of ISpell is my pet project. You get source,
but if you make any neat (or useful) enhancements it would probably be best
if you were to send them to me for inclusion in the next major release.
Your input will be plainly acknowledged in the README file and greatly
appreciated by myself and users of the Amiga version of ISpell everywhere.
I will take anything: new or improved front ends, new features,
improvements in WorkBench support (currently nil:).
To install ISpell from binary:
a) Unlharc this archive (you most likely did this if you are
reading this).
b) copy c/ispell to c:
c) copy c/GUISpell to c:
d) copy s/ispell.hash to s:
e) make sure that the t: logical assign exists.
f) look at README's in the interfaces/ directory tree.
Follow any directions related to an interface you would
like to install.
g) Read notes below.
To install ISpell from source:
Takes some work these days. :-)
a) cd ISpell & smake
b) cd interfaces/GUISpell-1.1 & smake
c) install as above (except get binaries from the source directory)
Memory requirements to run ISpell:
The ISpell dictionary comes in several flavors. The big dictionary
distribution requires an amiga w/ LOTS of ram. To compile the dict.2
version you will need 1.4 megs of ram. To run this version you need 750k.
This dictionary supports Capitalization mode. Currently dict.2 is the only
one shipped with the ISpell package.
Notes on the ARexx Server Mode of ISpell:
Quick Overview of Servers
Servers are a big deal in the UNIX world. I like the way things work under
UNIX most of the time, the way servers work under UNIX is no exception. A
server is a program that stays in core waiting for requests from other
programs. In general, when a server receives a request for service, it
performs a given action or a sequence of actions and then replies to the
requester. The requests to the server can come from a number of sources:
front-end client programs running on the local host (with any type of
message passing scheme, e.g. EXEC's or ARexx's message passing facility)
or a remote host (with the appropriate networking software, e.g. TCP/IP),
and directly from the user via some form of command line (e.g. via ARexx).
Some advantages to usings servers instead of classic approaches are as
follows,
1. The client and the server can be run on different machines with the
appropriate networking software.
2. User can customize the front-end (client) software without having
to know how the server works internally. User must only know
the client-server interface.
3. Servers can sometimes perform a given operation much faster than
the standard load, run, terminate cycle. For example, if one wants
to spell check even one word with ISpell about 700KB of information
must be loaded into memory. Later, if another single word must be
checked, then the entire 700KB of data must be reloaded into memory.
With ISpell's new server mode, small client programs can connect
up with the running ISpell server to spell check words or documents,
while avoiding the reload time.
Overview of the ARexx Server Mode of ISpell
By no surprise, currently under the AmigaOS client-server relations are
most easily implemented with ARexx. Requests and replies take the form of
ARexx messages. The only limitation of using ARexx in order to implement
client-server relations is that the client and the server must run on the
same Amiga. Hopefully, this restriction will be lifted with the advent of
support on the Amiga for real networking protocols (TCP/IP and others).
ISpell can be started up in server mode with the following command:
run <nil: >nil: ispell -r <nil: >nil:
Once the server has been started, it is a good idea to wait for the ISpell
ARexx port to show up before trying to use it. The ISpell's ARexx port
name is IRexxSpell and the easiest way to wait for it's arrival is with the
following command,
waitforport 'IRexxSpell'
For thoses of you who are excited to see the ISpell ARexx server work type,
rx "options results;address 'IRexxSpell' check ites;say result"
at a Shell prompt.
You should see the computer respond with,
& BITES CITES ICES IRES ITEM ITEMS ITS KITES RITES SITES TIES
Or, if you have installed the ARexx front-end scripts into your REXX:
directory then try typing,
spell ites
The computer should respond with,
The word 'ites' is not found. Try these words: bites cites ices
ires item items its kites rites sites ties
Please see the README's interfaces/ directory tree for other interfaces
available.
Feel free to write your own front-ends or modify the ones that I have
supplied. Below are the ARexx commands that ISpell knows how to respond
to. See my examples in the rexx directory for exact usage. Have fun and
please give the improved or new front-ends to ISpell away for all to see
and play with.
Commands that the ISpell Server Will Respond To
ADD <word> --- Adds a word to the `global personal dictionary'
and immediately save the personal dictionary
to disk.
QUICKADD <word> --- Adds a word as above, without saving changes
to the file on disk. An ADD command will
record any QUICKADD's since the last ADD.
If the server is shut down (or the Amiga's
power is lost), then all QUICKADD'ed words
are lost if no ADD was performed.
CHECK <word> --- The ISpell server checks the stated word in its
dictionary and returns a string that describes
if the word was found or, if not, replacements.
This return string is documented in man/ispell.1,
it is the same as if words were piped in via
standard in. See rexx/spell.rexx and
rexx/ced/WordSpell.ced for how to parse the
returned string in ARexx.
Excerpt taken from man/ispell.1:
If the word was found in the main dictionary, or your personal dictionary,
then the line contains only a '*'. If the word was found through suffix
removal, then the line contains a '+', a space, and the root word. If the
word is not in the dictionary, but there are near misses, then the line
contains an '&', a space, and a list of the near misses separated by
spaces.
Also, each near miss is capitalized the same as the input word if unless
such capitalization is illegal; in the latter case each near miss is
capitalized correctly according to the dictionary. Finally, if the word
neither appears in the dictionary, and there are no near misses, then the
line contains only a '#'. This mode is also suitable for interactive use
when you want to figure out the spelling of a single word.
QUICKCHECK <word> --- As above, but only checks to see if the
word is in the dictionary. Does not try
to find close matches, etc. See
rexx/ced/QuickWordSpell.ced for Usage.
Will return the string 'ok' or 'bad'
depending on if the word is found or not.
LOOKUP <word> --- Looks up word (really a grep pattern).
See rexx/lookup.rexx for usage. `.*' is
the match anything wild-card :-). `.' is
the match one character wild-card, see a
manual on grep or src/regex.c for more
information.
FILECHECK <filename> --- The ISpell server checks the named file, returns
the filename of a temporary file that contains
a list of words not found in the dictionary.
The client is required to delete the temporary
file when done with it. Be sure to include the
complete path in the filename as there are no
good ways to know the current directory of the
ISpell server. See rexx/spellfile.rexx and
rexx/ced/Spell.ced for usage.
EXTENDEDFILECHECK <filename> --- The ISpell server checks the named file
and return the list of mispelled words and
locations in a stem variable called ispellresult.
On return:
ispellresult. is the stem name.
ispellresult.count is the number of errors.
ispellresult.1.word is the first word in error.
ispellresult.1.line is the line position of the
first word in error.
ispellresult.1.column is the column position of
the first word in error.
ispellresult.j.word is the j'th word in error.
ispellresult.j.line is the line position of the
j'th word in error.
ispellresult.j.column is the column position of
the j'th word in error.
This is a real hack. Please expect this to
be cleaned up. There may be bugs here. Not
well tested. Be careful. Etc...
VERSION --- The ISpell server replies with its version string
and a line of the currently compiled in ARexx
commands that it will response to.
EXIT --- Causes the ISpell server to terminate after
replying to the request.
Please direct comments and bug reports to
Loren J. Rittle <rittle@comm.mot.com>
1008 Landing Rd.
Naperville, IL 60540
wk: (708) 576-7794
hm: (708) 420-7942